package com.ruoyi.system.domain.bo;

import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;

import java.util.Date;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 商品秒杀产品业务对象 p_store_seckill
 *
 * @author ruoyi
 * @date 2022-08-08
 */

@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel("商品秒杀产品业务对象")
public class PStoreSeckillBo extends BaseEntity {

    /**
     * 商品秒杀产品表id
     */
    @ApiModelProperty(value = "商品秒杀产品表id", required = true)
    @NotNull(message = "商品秒杀产品表id不能为空", groups = { EditGroup.class })
    private Long id;

    /**
     * 商品id
     */
    @ApiModelProperty(value = "商品id", required = true)
    @NotNull(message = "商品id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer productId;

    /**
     * 推荐图
     */
    @ApiModelProperty(value = "推荐图", required = true)
    @NotBlank(message = "推荐图不能为空", groups = { AddGroup.class, EditGroup.class })
    private String image;

    /**
     * 轮播图
     */
    @ApiModelProperty(value = "轮播图", required = true)
    @NotBlank(message = "轮播图不能为空", groups = { AddGroup.class, EditGroup.class })
    private String images;

    /**
     * 活动标题
     */
    @ApiModelProperty(value = "活动标题", required = true)
    @NotBlank(message = "活动标题不能为空", groups = { AddGroup.class, EditGroup.class })
    private String title;

    /**
     * 简介
     */
    @ApiModelProperty(value = "简介", required = true)
    @NotBlank(message = "简介不能为空", groups = { AddGroup.class, EditGroup.class })
    private String info;

    /**
     * 价格
     */
    @ApiModelProperty(value = "价格", required = true)
    @NotNull(message = "价格不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal price;

    /**
     * 成本
     */
    @ApiModelProperty(value = "成本", required = true)
    @NotNull(message = "成本不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal cost;

    /**
     * 原价
     */
    @ApiModelProperty(value = "原价", required = true)
    @NotNull(message = "原价不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal otPrice;

    /**
     * 返多少积分
     */
    @ApiModelProperty(value = "返多少积分", required = true)
    @NotNull(message = "返多少积分不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal giveIntegral;

    /**
     * 排序
     */
    @ApiModelProperty(value = "排序", required = true)
    @NotNull(message = "排序不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer sort;

    /**
     * 库存
     */
    @ApiModelProperty(value = "库存", required = true)
    @NotNull(message = "库存不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer stock;

    /**
     * 销量
     */
    @ApiModelProperty(value = "销量", required = true)
    @NotNull(message = "销量不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer sales;

    /**
     * 单位名
     */
    @ApiModelProperty(value = "单位名", required = true)
    @NotBlank(message = "单位名不能为空", groups = { AddGroup.class, EditGroup.class })
    private String unitName;

    /**
     * 邮费
     */
    @ApiModelProperty(value = "邮费", required = true)
    @NotNull(message = "邮费不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal postage;

    /**
     * 内容
     */
    @ApiModelProperty(value = "内容", required = true)
    @NotBlank(message = "内容不能为空", groups = { AddGroup.class, EditGroup.class })
    private String description;

    /**
     * 开始时间
     */
    @ApiModelProperty(value = "开始时间", required = true)
    @NotNull(message = "开始时间不能为空", groups = { AddGroup.class, EditGroup.class })
    private Date startTime;

    /**
     * 结束时间
     */
    @ApiModelProperty(value = "结束时间", required = true)
    @NotNull(message = "结束时间不能为空", groups = { AddGroup.class, EditGroup.class })
    private Date stopTime;

    /**
     * 秒杀状态 0=关闭 1=开启
     */
    @ApiModelProperty(value = "秒杀状态 0=关闭 1=开启", required = true)
    @NotNull(message = "秒杀状态 0=关闭 1=开启不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer status;

    /**
     * 是否包邮
     */
    @ApiModelProperty(value = "是否包邮", required = true)
    @NotNull(message = "是否包邮不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer isPostage;

    /**
     * 删除 0未删除1已删除
     */
    @ApiModelProperty(value = "删除 0未删除1已删除", required = true)
    @NotNull(message = "删除 0未删除1已删除不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer isDel;

    /**
     * 当天参与活动次数
     */
    @ApiModelProperty(value = "当天参与活动次数", required = true)
    @NotNull(message = "当天参与活动次数不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long num;

    /**
     * 显示
     */
    @ApiModelProperty(value = "显示", required = true)
    @NotNull(message = "显示不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer isShow;

    /**
     * 时间段ID
     */
    @ApiModelProperty(value = "时间段ID", required = true)
    @NotNull(message = "时间段ID不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long timeId;

    /**
     * 运费模板ID
     */
    @ApiModelProperty(value = "运费模板ID", required = true)
    @NotNull(message = "运费模板ID不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long tempId;

    /**
     * 重量
     */
    @ApiModelProperty(value = "重量", required = true)
    @NotNull(message = "重量不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal weight;

    /**
     * 体积
     */
    @ApiModelProperty(value = "体积", required = true)
    @NotNull(message = "体积不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal volume;

    /**
     * 限购总数,随减
     */
    @ApiModelProperty(value = "限购总数,随减", required = true)
    @NotNull(message = "限购总数,随减不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer quota;

    /**
     * 限购总数显示.不变
     */
    @ApiModelProperty(value = "限购总数显示.不变", required = true)
    @NotNull(message = "限购总数显示.不变不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer quotaShow;

    /**
     * 规格 0=单 1=多
     */
    @ApiModelProperty(value = "规格 0=单 1=多", required = true)
    @NotNull(message = "规格 0=单 1=多不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer specType;


}
